package paginas;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

import modelUtil.Util;
import util.BotonPersonalizado;
import util.ParOrigenDestino;
import AccionBoton.AccionCambiarPanelesImportarTeclados;
import AccionBoton.AccionCerrar;
import AccionBoton.AccionFocoCreditos;
import AccionBoton.AccionGuardarMoverTeclado;
import AccionBoton.AccionMostrarTecladosImportar;
import AccionBoton.AccionMoverTeclado;
import AccionBoton.AccionSeleccionDestinoExportarTeclado;
import fachadaUsuario.delegate.UsuarioFacade;

public class PaginaImportarExportarTeclado extends JDialog{



	private static final long serialVersionUID = 1L;
	JPanel izq = new JPanel();
	JPanel drcha = new JPanel();
	JPanel abajo = new JPanel();
	String usuario;
	private JRadioButton boton1;
	private JRadioButton boton2;
	List<String> teclados;
	JLabel etiqueta = new JLabel("");
    JList list;
    private DefaultListModel listModel;
    private JTextField texto;
    private JComboBox desplegable;
    JList list2;
    private DefaultListModel listModel2;
    private PaginaEntornoCreacion _ejemplo;
    private List<ParOrigenDestino> tecladosMover = new ArrayList<ParOrigenDestino>();
    private JTextField texto2;
    
	
	public PaginaImportarExportarTeclado(PaginaEntornoCreacion ejemplo){
		
		_ejemplo = ejemplo;
		initComponents();
		setBounds(0, 0, 600, 650);
		setPreferredSize(new Dimension(600,650));
		setAlwaysOnTop(true);
		setLocationRelativeTo(null);
		setResizable(false);
		setModal(true);
		boton2.doClick();
		boton2.setSelected(true);
		boton1.doClick();
		boton2.setSelected(false);
		boton1.setSelected(true);
		this.pack();
		this.repaint();
		setVisible(true);
		
	}
	
	
	public void initComponents(){
		
		panelArriba();
		panelMedio();
		panelAbajo();
		GridBagLayout grid = new GridBagLayout();
		GridBagConstraints cons = new GridBagConstraints();
		
		cons.gridheight = 1;
		cons.gridwidth = 1;
		cons.gridx = 0;
		cons.gridy =0;
		grid.addLayoutComponent(izq, cons);
		add(izq);

		cons.gridx = 0;
		cons.gridy = 1;
		grid.addLayoutComponent(drcha, cons);
		add(drcha);
		
		cons.gridx = 0;
		cons.gridy = 2;
		grid.addLayoutComponent(abajo, cons);
		add(abajo);
		
		this.setLayout(grid);
		
	}
	
	
	public void panelArriba(){
		
		JPanel panel1 = new JPanel();
		JPanel panel2 = new JPanel();
		JPanel panel3 = new JPanel();
		JPanel panel4 = new JPanel();

		TitledBorder border = new TitledBorder(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_origen"));
		TitledBorder border2 = new TitledBorder(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_destino"));

		panel1.setBorder(border);
		panel2.setBorder(border2);

		GridBagLayout grid = new GridBagLayout();
		GridBagConstraints cons = new GridBagConstraints();
		GridBagLayout grid2 = new GridBagLayout();
		GridBagConstraints consPanel2 = new GridBagConstraints();

		panel1.setLayout(grid);
		panel2.setLayout(grid2);

		JLabel titulo = new JLabel(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_usuario_origen"));
		JLabel titulo2 = new JLabel(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_seleccion_usuario_titulo"));

		boton1 = new JRadioButton(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_otro_usuario"));

		boton2 = new JRadioButton(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_destino_externo"));
		boton1.setFocusable(true);
		boton2.setFocusable(true);
		boton1.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_importacion_teclados_seleccion_usuarios"));
		boton1.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_importacion_teclados_seleccion_usuarios"));
		boton2.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_importacion_teclados_seleccion_carpeta"));
		boton2.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_importacion_teclados_seleccion_carpeta"));
		ButtonGroup bg = new ButtonGroup();
		bg.add(boton1);
		bg.add(boton2);
		
		texto = new JTextField(_ejemplo.getList().getSelectedValue().toString());
		texto.setEditable(false);
		texto.setPreferredSize(new Dimension(150,30));
		cons.gridx = 0;
		cons.gridy = 0;
		cons.gridheight = 1;
		cons.gridwidth = 1;
		
		consPanel2.gridx = 0;
		consPanel2.gridy = 0;
		consPanel2.gridheight = 1;
		consPanel2.gridwidth = 1;
		
		grid2.addLayoutComponent(titulo2,consPanel2);
		panel2.add(titulo2);
		consPanel2.insets = new Insets(5, 0, 0, 0);
		consPanel2.gridy = 1;
		grid2.addLayoutComponent(boton1,consPanel2);
		panel2.add(boton1);
		consPanel2.gridy = 2;
		grid2.addLayoutComponent(boton2,consPanel2);
		panel2.add(boton2);
		
		
		JLabel etiqueta = new JLabel(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_seleccion_usuario"));
		desplegable = new JComboBox();
		desplegable.setPreferredSize(new Dimension(150,30));
		desplegable.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_desplegable_usuarios"));
		desplegable.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_desplegable_usuarios"));
		UsuarioFacade fachada = new UsuarioFacade();
		List<String> usuarios = fachada.ListarUsuarios();
		
		for(int i=0; i<usuarios.size();i++){
			if(!usuarios.get(i).equals(".svn")){
				if(!usuarios.get(i).equals("Admin"))
				desplegable.addItem(usuarios.get(i));

			}
			
		}

		GridBagLayout grid4 = new GridBagLayout();
		GridBagConstraints cons2 = new GridBagConstraints(); 
		cons2.gridheight = 1;
		cons2.gridwidth = 1;
		cons2.gridx = 0;
		cons2.gridy = 0;
		panel3.setLayout(grid4);
		grid4.addLayoutComponent(etiqueta,cons2);
		panel3.add(etiqueta);
		cons2.insets = new Insets(5, 0, 0, 0);
		cons2.gridy = 1;
		grid4.addLayoutComponent(desplegable,cons2);
		panel3.add(desplegable);
		
		GridBagLayout grid5 = new GridBagLayout();
		panel4.setLayout(grid5);
		cons2.gridheight = 1;
		cons2.gridwidth = 1;
		cons2.gridx = 0;
		cons2.gridy = 0;
		cons2.insets = new Insets(0, 0, 0, 0);
		JLabel titulo3 = new JLabel(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_seleccion_carpeta"));
		texto2 = new JTextField();
		texto2.setPreferredSize(new Dimension(150,30));
		texto2.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_ruta_carpeta_externa_teclados"));
		texto2.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_ruta_carpeta_externa_teclados"));
		grid5.addLayoutComponent(titulo3,cons2);
		panel4.add(titulo3);
		cons2.insets = new Insets(5, 0, 0, 0);
		cons2.gridwidth = 1;
		cons2.gridy = 1;
		grid5.addLayoutComponent(texto2, cons2);

		panel4.add(texto2);
		
		BotonPersonalizado b1 = Util.BotonImagen("...", "");
		b1.addActionListener(new AccionSeleccionDestinoExportarTeclado(this));
		b1.addFocusListener(new AccionFocoCreditos(b1));
		b1.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_carpeta_externa_teclados"));
		b1.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_carpeta_externa_teclados"));
		b1.setPreferredSize(new Dimension(60,29));
		b1.setBorder(new LineBorder(Color.gray, 1));
		
		cons2.gridx = 1;
		grid5.addLayoutComponent(b1, cons2);
		panel4.add(b1);
		

		boton1.addActionListener(new AccionCambiarPanelesImportarTeclados(panel2,panel3,panel4,this));
		boton2.addActionListener(new AccionCambiarPanelesImportarTeclados(panel2, panel4, panel3,this));
		
		cons.gridx =0;
		cons.gridy=0;
		cons.fill =GridBagConstraints.NONE;
		cons.insets = new Insets(0, 0, 0, 0);
		grid.addLayoutComponent(titulo, cons);
		panel1.add(titulo);
		panel1.setPreferredSize(new Dimension(200,100));
		panel2.setPreferredSize(new Dimension(300,160));

		cons.gridx = 0;
		cons.gridy = 1;
		cons.insets = new Insets(10, 0, 0, 0);
		grid.addLayoutComponent(texto, cons);
		panel1.add(texto);
		GridBagLayout grid3 = new GridBagLayout();
		izq.setLayout(grid3);
		cons.gridx = 0;
		cons.gridy = 0;
		cons.gridheight = 1;
		cons.gridwidth = 1;
		cons.fill = GridBagConstraints.HORIZONTAL;
		
		consPanel2.gridy = 3;
		grid2.addLayoutComponent(panel3,consPanel2);
		panel2.add(panel3);
		grid2.addLayoutComponent(panel4,consPanel2);
		panel2.add(panel4);
		

		grid3.addLayoutComponent(panel1,cons);
		izq.add(panel1);
		cons.gridx = 1;
		cons.insets = new Insets(0, 20, 0, 0);
		grid3.addLayoutComponent(panel2,cons);

		izq.add(panel2);
		izq.setPreferredSize(new Dimension(550,180));

		
	}
	
	public void panelMedio(){
		
		JPanel panel1 = new JPanel();
		JPanel panel2 = new JPanel();
		JPanel panel3 = new JPanel();

		List<String> usuarios = Util.ListarTecladosUsuario(texto.getText());
				
		FlowLayout grid2 = new FlowLayout();
		grid2.setAlignment(FlowLayout.CENTER);
		GridBagConstraints cons = new GridBagConstraints();

		panel1.setPreferredSize(new Dimension(200, 300));
				
		drcha.setLayout(grid2);
		cons.gridheight = 1;
		cons.gridwidth = 1;
		cons.gridx=0;
		cons.gridy = 0;
		
        listModel2 = new DefaultListModel();
        listModel = new DefaultListModel();
        for (int i=0; i<usuarios.size();i++){
        	if(!usuarios.get(i).equals(".svn")){
        listModel2.addElement(usuarios.get(i));
        	}
        }

        //Create the list and put it in a scroll pane.
        list2 = new JList(listModel2);
        list = new JList(listModel);
        
        list.setFocusable(true);
        list2.setFocusable(true);
        list.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_destino_teclados_importacion"));
		list.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_destino_teclados_importacion"));
		list2.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_origen_teclados_importacion"));
		list2.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_origen_teclados_importacion"));
		
        list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        list2.setVisibleRowCount(5);
        list.setVisibleRowCount(5);
    	JScrollPane pane = new JScrollPane(list2);
    	JScrollPane pane2 = new JScrollPane(list);  	
		panel1.add(pane);
		
		pane.setPreferredSize(new Dimension(200, 250));
		grid2.addLayoutComponent("panel1", panel1);
		drcha.add(panel1);
		cons.gridwidth = 1;
		cons.gridx =1;
		pane2.setPreferredSize(new Dimension(200, 250));
		
		GridBagLayout grid3 = new GridBagLayout();
		GridBagConstraints consPanel = new GridBagConstraints();
		consPanel.gridheight = 1;
		consPanel.gridwidth =1;
		consPanel.gridx = 0;
		consPanel.gridy = 0;
		consPanel.fill = GridBagConstraints.BOTH;
		panel2.setLayout(grid3);
		JButton b1 = new JButton(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_enviar"));
		b1.addActionListener(new AccionMoverTeclado(this,"enviar"));
		b1.setPreferredSize(new Dimension(120,30));
		
		JButton b2 = new JButton(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_menu_importar_exportar_teclados_cargar"));
		b2.setPreferredSize(new Dimension(120,30));

		b2.addActionListener(new AccionMoverTeclado(this,"cargar"));
		
		b1.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_enviar_teclados"));
		b1.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_enviar_teclados"));
		
		b2.getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cargar_teclados"));
		b2.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cargar_teclados"));
		
		grid3.addLayoutComponent(b1, consPanel);
		panel2.add(b1);
		consPanel.gridy = 1;
		consPanel.insets = new Insets(10, 0, 0, 0);
		grid3.addLayoutComponent(b2, consPanel);

		panel2.add(b2);
		panel2.setPreferredSize(new Dimension(120,300));
		panel3.setPreferredSize(new Dimension(200, 300));

		panel3.add(pane2);
		
		grid2.setHgap(10);
		grid2.addLayoutComponent("panel2", panel2);
		drcha.add(panel2);
		cons.gridx=2;
		grid2.addLayoutComponent("panel3", panel3);
		desplegable.setEditable(false);
		desplegable.addItemListener(new AccionMostrarTecladosImportar(this));
		desplegable.setSelectedIndex(1);
		desplegable.setSelectedIndex(0);
		drcha.add(panel3);
		drcha.setPreferredSize(new Dimension(550,300));
		
	}
	
	public void panelAbajo(){
		
		BotonPersonalizado boton1 = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_ayuda"),"lib//Resources//Ayuda.png");
		BotonPersonalizado boton2 = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_popup_admin_aceptar"),"lib//Resources//Aceptar.png");
		BotonPersonalizado boton3 = Util.BotonImagen(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_pagina_entorno_creacion_salir"), "lib//Resources//Salir.jpg");
		
		boton1.setPreferredSize(new Dimension(150,50));
		boton2.setPreferredSize(new Dimension(150,50));
		boton3.setPreferredSize(new Dimension(150,50));
		
		boton1.addFocusListener(new AccionFocoCreditos(boton1));
		boton2.addFocusListener(new AccionFocoCreditos(boton2));
		boton3.addFocusListener(new AccionFocoCreditos(boton3));
		
		
		boton1.setMnemonic(KeyEvent.VK_Y);
		boton1.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_Y);
		boton1.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_menu_ayuda"));
		boton1.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_menu_ayuda"));
		
		boton2.setMnemonic(KeyEvent.VK_A);
		boton2.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_A);
		boton2.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_aceptar_importacion_teclados"));
		boton2.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_aceptar_importacion_teclados"));
		
		boton3.setMnemonic(KeyEvent.VK_A);
		boton3.getLabelTexto().setDisplayedMnemonic(KeyEvent.VK_A);
		boton3.getLabelTexto().getAccessibleContext().setAccessibleName(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cancelar_importacion_teclados"));
		boton3.setToolTipText(ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("etiqueta_accesible_cancelar_importacion_teclados"));
		
		
		boton1.setBackground(new Color(238,238,238));
		boton2.setBackground(new Color(238,238,238));
		boton3.setBackground(new Color(238,238,238));


		boton2.addActionListener(new AccionGuardarMoverTeclado(this,_ejemplo));
		boton3.addActionListener(new AccionCerrar(this,_ejemplo));
		abajo.add(boton1);
		abajo.add(boton2);
		abajo.add(boton3);
		abajo.setPreferredSize(new Dimension(550,80));
		
		
	}
	
	public String getUsuario() {
		return usuario;
	}


	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}


	public JComboBox getDesplegable() {
		return desplegable;
	}


	public void setDesplegable(JComboBox desplegable) {
		this.desplegable = desplegable;
	}


	public DefaultListModel getListModel() {
		return listModel;
	}


	public void setListModel(DefaultListModel listModel) {
		this.listModel = listModel;
	}


	public PaginaEntornoCreacion get_ejemplo() {
		return _ejemplo;
	}


	public void set_ejemplo(PaginaEntornoCreacion ejemplo) {
		_ejemplo = ejemplo;
	}


	public JList getList() {
		return list;
	}


	public void setList(JList list) {
		this.list = list;
	}


	public JList getList2() {
		return list2;
	}


	public void setList2(JList list2) {
		this.list2 = list2;
	}


	public DefaultListModel getListModel2() {
		return listModel2;
	}


	public void setListModel2(DefaultListModel listModel2) {
		this.listModel2 = listModel2;
	}


	public List<ParOrigenDestino> getTecladosMover() {
		return tecladosMover;
	}


	public void setTecladosMover(List<ParOrigenDestino> tecladosMover) {
		this.tecladosMover = tecladosMover;
	}


	public JTextField getTexto2() {
		return texto2;
	}


	public void setTexto2(JTextField texto2) {
		this.texto2 = texto2;
	}


	public JRadioButton getBoton1() {
		return boton1;
	}


	public void setBoton1(JRadioButton boton1) {
		this.boton1 = boton1;
	}


	public JRadioButton getBoton2() {
		return boton2;
	}


	public void setBoton2(JRadioButton boton2) {
		this.boton2 = boton2;
	}

   
	
	
}
